package com.zhoukai.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhoukai.domain.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description TODO
 * @Author Mr.ZHOU
 * @Date Created in 2022/1/11 15:14
 */

public interface RoleMapper extends BaseMapper<Role> {
    /**
     * 根据角色IDS删除sys_role_menu中间表的数据
     *
     */
    void deleteRoleMenuByRoleIds(@Param("roleIds") Long[] roleIds);
    /**
     * 根据角色IDS删除sys_role_user中间表的数据
     *
     */
    void deleteRoleUserByRoleIds(@Param("roleIds")Long[] roleIds);
    /**
     * 根据用户IDS删除sys_role_user里面的数据
     *
     * @param ids
     */
    void deleteRoleUserByUserIds(@Param("ids") List<Long> ids);

    /**
     * 根据菜单权限ID删除sys_role_menu
     */
    void deleteRoleMenuByMenuIds(@Param("ids") List<Long> ids);

    /**
     * 保存角色和菜单之关的关系
     * @param roleId
     * @param menuId
     */
    void saveRoleMenu(@Param("roleId")Long roleId, @Param("menuId")Long menuId);



    /**
     * 根据用户ID查询已拥有的角色ID
     *
     * @param userId
     * @return
     */
    List<Role> getRoleIdsByUserId(@Param("userId") Long userId);

    /**
     * 保存用户和角色之间的关系
     *
     * @param userId
     * @param roleId
     */
    void saveRoleUser(@Param("userId") Long userId, @Param("roleId") Long roleId);


}